function [outputSetting,param]=BPFF_configInput(filename)
%{  
导入训练参数的设置：
outputSetting:
    .outputPath:输出结果路径（如输入DefaultPath则使用日期作为输出路径名）
    .outputName:输出结果文件名（不包括后缀名.mat）
    .netName:输出训练完成的神经网络的文件名
    .isDate:输入训练和预测的数据是索引还是日期(输入0或1）
param:
    .trainBegin:用于训练的数据的开始索引
    .trainEnd:用于训练的数据的结束索引
    .predictBegin:用于预测的数据的开始索引
    .predictEnd:用于预测的数据的结束索引
    .hiddenLayerSize：隐藏层神经元数
    .trainCount:训练次数（数据行数）
%}
fid=fopen(filename,'r');
fgetl(fid);   %跳过注释行
outputSetting.outputPath=fscanf(fid,'outputPath:%s'); fgetl(fid);
outputSetting.outputName=fscanf(fid,'outputName:%s'); fgetl(fid);
outputSetting.netName=fscanf(fid,'netName:%s'); fgetl(fid);
outputSetting.isDate=fscanf(fid,'isDate:%d'); fgetl(fid);

fgetl(fid);fgetl(fid);
% while 1   %跳过所有带%的注释行和空行
%     temp=fgetl(fid);
%     if ~isspace(temp)&&temp(1)!='\%'
%         break
%     end
% end   

paramExplanation=fgetl(fid);   %参数名称
paramExplanation=split(paramExplanation,' | ');   %分割参数名称行
trainCount=0;  %进行多少次训练（数据总行数）
param=BPFFTrainParam;
while ~feof(fid)
    trainCount=trainCount+1;
    tempParam=fgetl(fid);
    if isspace(tempParam)
        break;
    end
    tempParam=split(tempParam,',');
    for i=1:length(paramExplanation)
        eval(['param.' paramExplanation{i} '{trainCount}=' tempParam{i} ';']);  %把对应值赋值给相应参数名称，例如执行param.trainBegin{1}=1
    end
end
param.trainCount=trainCount;
fclose(fid);
end